package com.lyd.generic.demo3;

import java.util.Arrays;

/**
 * @Author:lyd 定义一个泛型接口ContainerInterface<T>，
 * 包含一个方法getSize()，实现该接口的类MyList<T>，并在Main方法中输出列表的大小。
 **/
interface ContainerInterface<T> {
    int getSize();
}

class MyList<T> implements ContainerInterface<T> {
    //用于追踪数组中的元素
    private int size;
    //定义object数组以支持泛型
    private Object[] array;

    public MyList() {
        this.array = new Object[10];
    }

    //添加元素的方法
    public void add(T elment) {
        if (size == array.length) {
            array = Arrays.copyOf(array, array.length * 2);
        }
        array[size++] = elment;
    }

    @Override
    public int getSize() {
        return size;
    }
}

public class TestDemo3 {
    public static void main(String[] args) {
        MyList<String> strMyList = new MyList<String>();
        strMyList.add("aa");
        strMyList.add("bb");
        strMyList.add("cc");
        strMyList.add("dd");
        System.out.println("自定义数组长度的大小为："+strMyList.getSize());
    }
}
